/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntidadesDBPrueba;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Facundo
 */
@Entity
@Table(name = "puestotrabajo", catalog = "tpare", schema = "")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Puestotrabajo.findAll", query = "SELECT p FROM Puestotrabajo p"),
    @NamedQuery(name = "Puestotrabajo.findByNombrePuestoTrabajo", query = "SELECT p FROM Puestotrabajo p WHERE p.puestotrabajoPK.nombrePuestoTrabajo = :nombrePuestoTrabajo"),
    @NamedQuery(name = "Puestotrabajo.findByArea", query = "SELECT p FROM Puestotrabajo p WHERE p.puestotrabajoPK.area = :area"),
    @NamedQuery(name = "Puestotrabajo.findByDepJerarquica", query = "SELECT p FROM Puestotrabajo p WHERE p.depJerarquica = :depJerarquica"),
    @NamedQuery(name = "Puestotrabajo.findByFunciones", query = "SELECT p FROM Puestotrabajo p WHERE p.funciones = :funciones"),
    @NamedQuery(name = "Puestotrabajo.findByAmbienteTrabajo", query = "SELECT p FROM Puestotrabajo p WHERE p.ambienteTrabajo = :ambienteTrabajo"),
    @NamedQuery(name = "Puestotrabajo.findByJornadaLaboral", query = "SELECT p FROM Puestotrabajo p WHERE p.jornadaLaboral = :jornadaLaboral"),
    @NamedQuery(name = "Puestotrabajo.findBySistemaRetributivo", query = "SELECT p FROM Puestotrabajo p WHERE p.sistemaRetributivo = :sistemaRetributivo"),
    @NamedQuery(name = "Puestotrabajo.findByIdPerfil", query = "SELECT p FROM Puestotrabajo p WHERE p.idPerfil = :idPerfil")})
public class Puestotrabajo implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected PuestotrabajoPK puestotrabajoPK;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "depJerarquica", nullable = false, length = 20)
    private String depJerarquica;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "funciones", nullable = false, length = 20)
    private String funciones;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "ambienteTrabajo", nullable = false, length = 20)
    private String ambienteTrabajo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "jornadaLaboral", nullable = false, length = 20)
    private String jornadaLaboral;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "sistemaRetributivo", nullable = false, length = 20)
    private String sistemaRetributivo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "idPerfil", nullable = false)
    private int idPerfil;

    public Puestotrabajo() {
    }

    public Puestotrabajo(PuestotrabajoPK puestotrabajoPK) {
        this.puestotrabajoPK = puestotrabajoPK;
    }

    public Puestotrabajo(PuestotrabajoPK puestotrabajoPK, String depJerarquica, String funciones, String ambienteTrabajo, String jornadaLaboral, String sistemaRetributivo, int idPerfil) {
        this.puestotrabajoPK = puestotrabajoPK;
        this.depJerarquica = depJerarquica;
        this.funciones = funciones;
        this.ambienteTrabajo = ambienteTrabajo;
        this.jornadaLaboral = jornadaLaboral;
        this.sistemaRetributivo = sistemaRetributivo;
        this.idPerfil = idPerfil;
    }

    public Puestotrabajo(String nombrePuestoTrabajo, String area) {
        this.puestotrabajoPK = new PuestotrabajoPK(nombrePuestoTrabajo, area);
    }

    public PuestotrabajoPK getPuestotrabajoPK() {
        return puestotrabajoPK;
    }

    public void setPuestotrabajoPK(PuestotrabajoPK puestotrabajoPK) {
        this.puestotrabajoPK = puestotrabajoPK;
    }

    public String getDepJerarquica() {
        return depJerarquica;
    }

    public void setDepJerarquica(String depJerarquica) {
        this.depJerarquica = depJerarquica;
    }

    public String getFunciones() {
        return funciones;
    }

    public void setFunciones(String funciones) {
        this.funciones = funciones;
    }

    public String getAmbienteTrabajo() {
        return ambienteTrabajo;
    }

    public void setAmbienteTrabajo(String ambienteTrabajo) {
        this.ambienteTrabajo = ambienteTrabajo;
    }

    public String getJornadaLaboral() {
        return jornadaLaboral;
    }

    public void setJornadaLaboral(String jornadaLaboral) {
        this.jornadaLaboral = jornadaLaboral;
    }

    public String getSistemaRetributivo() {
        return sistemaRetributivo;
    }

    public void setSistemaRetributivo(String sistemaRetributivo) {
        this.sistemaRetributivo = sistemaRetributivo;
    }

    public int getIdPerfil() {
        return idPerfil;
    }

    public void setIdPerfil(int idPerfil) {
        this.idPerfil = idPerfil;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (puestotrabajoPK != null ? puestotrabajoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Puestotrabajo)) {
            return false;
        }
        Puestotrabajo other = (Puestotrabajo) object;
        if ((this.puestotrabajoPK == null && other.puestotrabajoPK != null) || (this.puestotrabajoPK != null && !this.puestotrabajoPK.equals(other.puestotrabajoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "EntidadesDBPrueba.Puestotrabajo[ puestotrabajoPK=" + puestotrabajoPK + " ]";
    }
    
}
